//package com.qttaudio.example.simple;
//
//import android.Manifest;
//import android.app.AlertDialog;
//import android.content.DialogInterface;
//import android.content.Intent;
//import android.content.SharedPreferences;
//import android.content.pm.PackageManager;
//import android.net.Uri;
//import android.os.Build;
//import android.os.Bundle;
//import android.provider.Settings;
//import android.support.annotation.NonNull;
//import android.support.v4.app.ActivityCompat;
//import android.support.v4.content.ContextCompat;
//import android.support.v7.app.AppCompatActivity;
//import android.util.Log;
//import android.view.View;
//import android.widget.Button;
//import android.widget.EditText;
//import android.widget.RadioGroup;
//import android.widget.Toast;
//
//import com.qttaudio.example.R;
//import com.qttaudio.sdk.channel.ChannelEngine;
//import com.qttaudio.sdk.channel.ChannelFactory;
//import com.tencent.bugly.crashreport.CrashReport;
//
//import butterknife.BindView;
//import butterknife.ButterKnife;
//import butterknife.OnClick;
//
//public class MainActivity extends AppCompatActivity {
//
//    @BindView(R.id.editTextPhone)
//    EditText editTextPhone;
//    @BindView(R.id.buttonInit)
//    Button buttonInit;
//    @BindView(R.id.buttonJoin)
//    Button buttonJoin;
//    @BindView(R.id.editTextRoom)
//    EditText editTextRoom;
//    @BindView(R.id.radio_group)
//    RadioGroup radioGroup;
//    @BindView(R.id.buttonEcho)
//    Button buttonEcho;
//
//    // 要申请的权限
//    private String[] permissions = {Manifest.permission.RECORD_AUDIO,
//            Manifest.permission.CALL_PHONE,
//            Manifest.permission.WRITE_EXTERNAL_STORAGE};
//    private AlertDialog dialog;
//    private ChannelEngine channelEngine = null;
//
//    @Override
//    protected void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_main);
//        ButterKnife.bind(this);
//        CrashReport.initCrashReport(getApplicationContext(), "89bdc01cf1", false);
//
//        SharedPreferences sharedata = getSharedPreferences("data", 0);
//        editTextPhone.setText(sharedata.getString("account", ""));
//        editTextRoom.setEnabled(false);
//        buttonJoin.setEnabled(false);
//        buttonEcho.setEnabled(false);
//
//        // 版本判断。当手机系统大于 23 时，才有必要去判断权限是否获取
//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//            // 检查该权限是否已经获取
//            int i = ContextCompat.checkSelfPermission(this, permissions[0]);
//            // 权限是否已经 授权 GRANTED---授权  DINIED---拒绝
//            if (i != PackageManager.PERMISSION_GRANTED) {
//                // 如果没有授予该权限，就去提示用户请求
//                showDialogTipUserRequestPermission();
//            }
//        }
//
//        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
//            @Override
//            public void onCheckedChanged(RadioGroup radioGroup, int i) {
//                switch (i) {
////                    case R.id.quality_0:
////                        audioParams.setSamplerate(8000);
////                        audioParams.setBitrate(24000);
////                        break;
////                    case R.id.quality_1:
////                        audioParams.setSamplerate(16000);
////                        audioParams.setBitrate(48000);
////                        break;
////                    case R.id.quality_2:
////                        audioParams.setSamplerate(48000);
////                        audioParams.setBitrate(96000);
////                        break;
////                    case R.id.quality_3:
////                        audioParams.setSamplerate(48000);
////                        audioParams.setBitrate(256000);
////                        break;
//                }
//            }
//        });
//    }
//
//    @Override
//    protected void onDestroy() {
//        super.onDestroy();
//        if (channelEngine != null) {
//            Log.d("qtt_debug", "MainActivity onDestroy");
//            channelEngine.delete();
//            channelEngine = null;
//        }
//    }
//
//    @OnClick({R.id.buttonInit, R.id.buttonJoin})
//    public void onViewClicked(View view) {
//        switch (view.getId()) {
//            case R.id.buttonInit:
//                String phone = editTextPhone.getText().toString();
//                ChannelFactory.setContext(getApplicationContext());
//                ChannelFactory.setAppkey(phone);
//                channelEngine = ChannelFactory.GetChannelInstance();
//
//                if (channelEngine == null) {
//                    showNormalDialog(ChannelFactory.GetError());
//                    return;
//                }
//
//                SharedPreferences.Editor sharedata = getSharedPreferences("data", 0).edit();
//                sharedata.putString("account", editTextPhone.getText().toString());
//                sharedata.commit();
//
//                editTextRoom.setEnabled(true);
//                buttonJoin.setEnabled(true);
//                buttonEcho.setEnabled(true);
//                buttonInit.setEnabled(false);
//                editTextRoom.setText(editTextPhone.getText().toString().substring(2));
//
//                break;
//            case R.id.buttonJoin:
////                AudioDataObserverImpl.engine_samplerate = audioParams.getSamplerate();
//                Intent intent = new Intent();
//                intent.setClass(MainActivity.this, ChannelActivity.class);
//                intent.putExtra("roomId", editTextRoom.getText().toString());
//                startActivity(intent);
//                break;
//        }
//    }
//
//    // 提示用户该请求权限的弹出框
//    private void showDialogTipUserRequestPermission() {
//        new AlertDialog.Builder(this)
//                .setTitle("麦克风权限不可用")
//                .setMessage("由于该应用需要麦克风，采集音频数据；\n否则，您将无法正常使用该应用")
//                .setPositiveButton("立即开启", new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int which) {
//                        startRequestPermission();
//                    }
//                })
//                .setNegativeButton("取消", new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int which) {
//                        finish();
//                    }
//                }).setCancelable(false).show();
//    }
//
//
//    // 开始提交请求权限
//    private void startRequestPermission() {
//        ActivityCompat.requestPermissions(this, permissions, 321);
//    }
//
//    // 用户权限 申请 的回调方法
//    @Override
//    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
//        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
//        if (requestCode == 321) {
//            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//                if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
//                    // 判断用户是否 点击了不再提醒。(检测该权限是否还可以申请)
//                    boolean b = shouldShowRequestPermissionRationale(permissions[0]);
//                    if (!b) {
//                        // 用户还是想用我的 APP 的
//                        // 提示用户去应用设置界面手动开启权限
//                        showDialogTipUserGoToAppSettting();
//                    } else
//                        finish();
//                } else {
//                    Toast.makeText(this, "权限获取成功", Toast.LENGTH_SHORT).show();
//                }
//            }
//        }
//    }
//
//
//    // 提示用户去应用设置界面手动开启权限
//    private void showDialogTipUserGoToAppSettting() {
//        dialog = new AlertDialog.Builder(this)
//                .setTitle("麦克风权限不可用")
//                .setMessage("请在-应用设置-权限-中，允许该应用使用麦克风权限来获取音频数据")
//                .setPositiveButton("立即开启", new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int which) {
//                        // 跳转到应用设置界面
//                        goToAppSetting();
//                    }
//                })
//                .setNegativeButton("取消", new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int which) {
//                        finish();
//                    }
//                }).setCancelable(false).show();
//    }
//
//    // 跳转到当前应用的设置界面
//    private void goToAppSetting() {
//        Intent intent = new Intent();
//        intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
//        Uri uri = Uri.fromParts("package", getPackageName(), null);
//        intent.setData(uri);
//        startActivityForResult(intent, 123);
//    }
//
//    //
//    @Override
//    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//        super.onActivityResult(requestCode, resultCode, data);
//        if (requestCode == 123) {
//            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//                // 检查该权限是否已经获取
//                int i = ContextCompat.checkSelfPermission(this, permissions[0]);
//                // 权限是否已经 授权 GRANTED---授权  DINIED---拒绝
//                if (i != PackageManager.PERMISSION_GRANTED) {
//                    // 提示用户应该去应用设置界面手动开启权限
//                    showDialogTipUserGoToAppSettting();
//                } else {
//                    if (dialog != null && dialog.isShowing()) {
//                        dialog.dismiss();
//                    }
//                    Toast.makeText(this, "权限获取成功", Toast.LENGTH_SHORT).show();
//                }
//            }
//        }
//    }
//
//    private void showNormalDialog(String message) {
//        /* @setIcon 设置对话框图标
//         * @setTitle 设置对话框标题
//         * @setMessage 设置对话框消息提示
//         * setXXX方法返回Dialog对象，因此可以链式设置属性
//         */
//        final AlertDialog.Builder normalDialog1 =
//                new AlertDialog.Builder(MainActivity.this);
////        normalDialog1.setIcon(R.drawable.icon_dialog);
//        normalDialog1.setTitle(message);
//        normalDialog1.setPositiveButton("确定",
//                new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int which) {
//                        //...To-do
//                    }
//                });
//        // 显示
//        normalDialog1.show();
//    }
//
//    @OnClick(R.id.buttonEcho)
//    public void onViewClicked() {
////        mAudioEngine.setAudioParams(audioParams);
////        AudioDataObserverImpl.engine_samplerate = audioParams.getSamplerate();
////        Intent intent = new Intent();
////        intent.setClass(MainActivity.this, EchoActivity.class);
////        startActivity(intent);
//    }
//}
